GtkPropagationPhase phase;
GtkPropagationLimit limit;
char *name;
+ GtkWidget *target;
};
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GtkEventController, gtk_event_controller, G_TYPE_OBJECT)
double y)
{
GtkEventControllerClass *controller_class;
+ GtkEventControllerPrivate *priv;
gboolean retval = FALSE;
+ priv = gtk_event_controller_get_instance_private (controller);
+
g_return_val_if_fail (GTK_IS_EVENT_CONTROLLER (controller), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
controller_class = GTK_EVENT_CONTROLLER_GET_CLASS (controller);
+ priv->target = target;
+
g_object_ref (controller);
retval = controller_class->handle_event (controller, event, x, y);
g_object_unref (controller);
+ priv->target = NULL;
+
return retval;
}
priv->name = g_strdup (name);
}
+GtkWidget *
+gtk_event_controller_get_target (GtkEventController *controller)
+{
+ GtkEventControllerPrivate *priv = gtk_event_controller_get_instance_private (controller);
+
+ return priv->target;
+}
+
static GtkCrossingData *
gtk_crossing_data_copy (GtkCrossingData *crossing)
{